home *** CD-ROM | disk | FTP | other *** search
- /*
- ### allocate memory dynamically after selecting or loading a new model ###
- */
-
- #include <suntool/sunview.h>
- #include <suntool/canvas.h>
- #include <suntool/panel.h>
-
- void malloc_model_init()
- {
- double *dvector(),**dmatrix();
- char **svector();
- extern int batch_on,func_on,var_dim,full_dim,func_dim,param_dim;
- extern int var_dim_max,func_dim_max,param_dim_max,all_dim_max;
- extern double *var_i,*var_polar_i,*var_min,*var_max,*var_polar_min,*var_polar_max;
- extern double *v,*t_v,*t_vf,*t_va,*xoffset,*int_yscal,*period_len;
- extern double *win_var_i,*win_var_f,*win_var_i_old;
- extern double *func,*func_i,*func_f,*func_min,*func_max,*func_min_top,*func_max_top;
- extern double *all_min,*all_max,*all_min_top,*all_max_top;
- extern double *param,*param_min,*param_max,*param_min_top,*param_max_top;
- extern char **var_label,**var_polar_label,**func_label,**param_label,**win_var_label,**all_label;
- extern Panel_item *param_item,*var_i_item,*func_i_item,*func_f_item,*all_min_item,*all_max_item,*int_yscal_item;
-
- var_i = dvector(0,var_dim -1);
- var_polar_i = dvector(0,var_dim-1);
- var_min = dvector(0,var_dim-1);
- var_max = dvector(0,var_dim-1);
- var_polar_min = dvector(0,var_dim-1);
- var_polar_max = dvector(0,var_dim-1);
-
- win_var_i = dvector(0,var_dim -1);
- win_var_i_old = dvector(0,var_dim -1);
- win_var_f = dvector(0,var_dim -1);
-
- func = dvector(0,func_dim-1);
- func_i = dvector(0,func_dim-1);
- func_f = dvector(0,func_dim-1);
- func_min = dvector(0,func_dim-1);
- func_max = dvector(0,func_dim-1);
-
- /*
- * In order not to waste the memory, free and reallocate memory
- * dynamically when func_on is turned on by event handlers.
- */
- all_min = dvector(0,full_dim+param_dim-1);
- all_max = dvector(0,full_dim+param_dim-1);
- all_min_top = dvector(0,full_dim+param_dim-1);
- all_max_top = dvector(0,full_dim+param_dim-1);
-
- param = dvector(0,param_dim-1);
- param_min = dvector(0,param_dim-1);
- param_max = dvector(0,param_dim-1);
- param_min_top = dvector(0,param_dim-1);
- param_max_top = dvector(0,param_dim-1);
-
- period_len = dvector(0,full_dim+param_dim-1);
-
- v = dvector(0,full_dim-1);
- t_v = dvector(0,full_dim-1);
- t_vf = dvector(0,full_dim-1);
- t_va = dvector(0,full_dim+param_dim-1);
-
- all_label = svector(0,all_dim_max-1);
- win_var_label = svector(0,all_dim_max-1);
- param_label = svector(0,param_dim_max-1);
- func_label = svector(0,func_dim_max-1);
- /* THe way it should be */
- /*
- all_label = svector(0,full_dim+param_dim-1);
- win_var_label = svector(0,full_dim+param_dim-1);
- param_label = svector(0,param_dim-1);
- func_label = svector(0,func_dim-1);
- */
-
- var_label = svector(0,var_dim_max -1);
- var_polar_label = svector(0,var_dim_max -1);
-
- int_yscal = dvector(0,var_dim-1);
- xoffset = dvector(0,var_dim-1);
-
- if(!batch_on){
- param_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * param_dim);
- var_i_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * var_dim);
- func_i_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * func_dim);
- func_f_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * func_dim);
- all_min_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * (full_dim+param_dim));
- all_max_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * (full_dim+param_dim));
- int_yscal_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * var_dim);
-
- }
- }
-